package com.king.framework.interceptor;

public class LoggerInterceptor /*implements HandlerInterceptor*/ {
//	// 请求日志实体标识
//	private static final String LOGGER_ENTITY = "_logger_entity";
//
//	/**
//	 * 进入SpringMVC的Controller之前开始记录日志实体
//	 * 
//	 * @param request
//	 *            请求对象
//	 * @param response
//	 *            响应对象
//	 * @param o
//	 * @return
//	 * @throws Exception
//	 */
//	@Override
//	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
//		// 创建日志实体
//		SysOperLogEntity logger = new SysOperLogEntity();
//		// 获取请求sessionId
////		String sessionId = request.getRequestedSessionId();
//		// 获取请求参数信息
//		String paramData = JSON.toJSONString(request.getParameterMap());
//
//		// 获取当前的用户
//		LoginUser loginUser = SecurityUtils.getLoginUser();
//		// 设置客户端ip
//		SysOperLogEntity operLog = new SysOperLogEntity();
//		operLog.setStatus(SsEnum.NORMAL.getKey());
//		// 请求的地址
//		String ip = IpUtils.getIpAddr(request);
//		operLog.setOperIp(ip);
//		operLog.setOperUrl(StringUtils.substring(request.getRequestURI(), 0, 255));
//		if (loginUser != null) {
//			operLog.setOperName(loginUser.getUsername());
//			operLog.setGroupid(loginUser.getGroupid());
//			operLog.setCr(loginUser.getUserId());
//			operLog.setMr(loginUser.getUserId());
//		}
//		Date ts = new Date();
//		operLog.setOperTime(ts);
//		operLog.setSs(SsEnum.NORMAL.getKey());
//		operLog.setCts(ts);
//		operLog.setMts(ts);
//		// 设置方法名称
//		operLog.setMethod(request.getMethod());
//		// 设置请求方式
//		operLog.setRequestMethod(request.getMethod());
//		operLog.setOperParam(paramData);
//		// 设置请求实体到request内，方面afterCompletion方法调用
//		request.setAttribute(LOGGER_ENTITY, logger);
//		return true;
//	}
//
//	@Override
//	public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o,
//			ModelAndView modelAndView) throws Exception {
//
//	}
//
//	@Override
//	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object o, Exception e)
//			throws Exception {
//		// 当前时间
//		Date time = new Date();
//		// 获取本次请求日志实体
//		SysOperLogEntity operLog = (SysOperLogEntity) request.getAttribute(LOGGER_ENTITY);
//		operLog.setStatus(response.getStatus());
//		// 设置请求时间差
//		operLog.setTimeConsuming(time.getTime() - operLog.getOperTime().getTime());
//		// 设置返回时间
//		operLog.setReturnTime(time);
//		// 设置返回错误码
//		
//		// 设置返回值 TODO 怎么读取响应结果
//		operLog.setJsonResult("");//StringUtils.substring(JSON.toJSONString(jsonResult), 0, 2000)
//		// 保存数据库
//		AsyncManager.me().execute(AsyncFactory.recordOperLog(operLog));
//	}
}
